1. Field of the Invention
The present invention relates to a system, method, and program for blocking input/output (I/O) access to paths to a storage device to facilitate the processing of data in memory.
2. Description of the Related Art
Host computer systems may access a mass storage unit, such as a Direct Access Storage Device (DASD), which is comprised of numerous interconnected hard disk drives (HDDs) that form a single mass storage space. In such systems, a control unit manages input/output (I/O) operations between the host systems and the DASD. Examples of control units include the International Business Machines (xe2x80x9cIBMxe2x80x9d) 3990 Storage Controller, described in IBM publication, xe2x80x9cIBM 3990 Storage Control Reference (Models 1, 2, and 3), IBM document no. GA32-0099-06 (Copyright IBM Corp. 1988, 1994), which publication is incorporated herein by reference in its entirety.
Business organizations often insist on continuous availability to critical data twenty four hours a day, every day of the year. For many businesses and organizations, such as banks and other financial institutions, inability to access data for any period of time could lead to loss of financial transactions, financial losses, loss of credibility and reliability with customers, and maybe even a total failure of the business. Therefore, the ability to provide continuous availability to data for the mission critical applications is more often than not a necessity for business survival. Some data storage systems provide a shadow system which provides periodic back-up of data written to the primary storage system. This insures near real-time recovery of data at the shadow site. To provide continuous availability of data, International Business Machines Corporation (xe2x80x9cIBMxe2x80x9d) offers Extended Remote Copy (XRC) and Peer-to-Peer Remote Copy (PPRC). The IBM XRC systems provides a system data mover (SDM) that copies data from a primary site to a secondary site. Each site includes a control unit and DASD. Data updates to tracks at the primary control unit are transferred from the primary control unit cache to the secondary control unit for back-up storage at the secondary DASD. This secondary site functions as the recovery site in case data is lost or damaged at the primary site. Details of the IBM XRC system are described in the IBM publication xe2x80x9cPlanning for IBM Remote Copy,xe2x80x9d IBM publication no. SG24-2595-00 (Copyright IBM Corp. 1995), which publication is incorporated herein by reference in its entirety.
In the IBM XRC system, a system data mover (SDM) component transfers updates to volumes in the primary DASD to the secondary storage. Data updates to transfer to secondary storage are maintained in an area of the primary control unit cache referred to as the xe2x80x9csidefile.xe2x80x9d The SDM transfers data updates from the sidefile portion of primary cache to the secondary control unit for application to the secondary DASD. When the amount of data in the sidefile exceeds certain thresholds, the primary control unit will inhibit application I/O processing to allow the SDM to drain the sidefile. See xe2x80x9cPlanning for IBM Remote Copy,xe2x80x9d pg. 129, which publication was incorporated herein by reference above.
In current implementations, if the sidefile exceeds a predetermined threshold, then a busy message is returned to any host application directing an I/O operation toward the control unit having the overfilled sidefile. This busy message prevents the host application receiving the busy message from presenting any further I/Os to the control unit until the sidefile is sufficiently drained.
This method of draining the sidefile is sometimes problematic for users, such as large financial institutions and other organizations, that require continuous access and availability to business data. For instance, banking institutions cannot have any period where I/Os are not processed; otherwise, processing of financial transactions may come to a halt if the systems performing the financial transactions cannot access data.
Thus, there is a need in the art for an improved method, system, and program for draining the sidefile to improve data recovery capabilities and, at the same time, permit continual I/O access to the storage device to provided continual access to data.
To overcome the limitations in the prior art described above, preferred embodiments disclose a system, method, and program for limiting input/output (I/O) requests from an application program to a storage device to facilitate the processing of data in memory. A determination is made as to whether an amount of a set of data in memory exceeds at least one threshold. At least one of multiple paths to the storage device is indicated as blocked to I/O requests from the application program. Each indicated blocked path is available for processing the set of data in memory. An I/O request from the application program is received and a determination is made as to whether the received I/O request intends to access the storage device using one indicated blocked path. The I/O request is denied access to the storage device via the blocked path.
In further embodiments, determining whether the set of data in memory exceeds one threshold involves determining whether the set of data exceeds one of a multiple number of thresholds. In such case, exceeding one threshold increases the number of paths to the storage device that are blocked. Still farther, a determination may be made as to the threshold value that the set of data in memory exceeds. Each incrementally higher threshold value may correspond to blocking one more path. In such case, indicating the paths that are blocked comprises indicating a number of paths blocked that corresponds to the paths blocked for the determined threshold value.
Further embodiments provide stopgap methods to allow an I/O request access to an otherwise blocked storage path if certain conditions are satisfied. For instance, if the blocked I/O path has denied I/O requests for a predetermined number of instances or a time period, then the blocked path will nonetheless process the I/O request.
Preferred embodiments provide blocking levels to limit I/O requests"" use of storage paths. Blocked storage paths are available to process the set of data in memory. For instance, the set of data in memory may comprise a sidefile of data updates to a primary DASD to transfer to a secondary DASD for data back-up therein. In such case, blocked storage paths are reserved to insure that data updates in the sidefile are applied to the secondary storage in a manner that prevents the sidefile holding the updates from consuming sufficient cache to adversely affect system performance.